export const REQUEST_CODE_MESSAGE: Record<number, string> = {
    200: '服务器成功返回请求的数据。',
    201: '新建或修改数据成功。',
    202: '一个请求已经进入后台排队（异步任务）。',
    204: '删除数据成功。',
    400: '发出的请求有错误，服务器没有进行新建或修改数据的操作。',
    401: '认证失败，无法访问系统资源',
    403: '当前操作没有权限',
    404: '访问资源不存在',
    406: '请求的格式不可得。',
    410: '请求的资源被永久删除，且不会再得到的。',
    422: '当创建一个对象时，发生一个验证错误。',
    500: '服务器发生错误，请检查服务器。',
    502: '网关错误。',
    503: '服务不可用，服务器暂时过载或维护。',
    504: '网关超时。'
};

// 模型性质
// TODO 需改为大驼峰
export enum modifierType {
    ABSTRACT = '父模型',
    EXTENDED = '对象模型',
    SINGLE = '单一模型'
}

// 模型状态
// TODO 需改为大驼峰
export enum activeState {
    NEW = '未激活',
    ACTIVATED = '激活'
}

// 模型用途（TODO：扩展）
// TODO 需改为大驼峰
export enum usageType {
    BUSINESS = '业务模型',
    THING = '物模型',
    VIEW = '视图模型'
}

// 模型类型
// TODO 需改为大驼峰
export enum objectType {
    SYSTEM = '系统模型',
    STANDARD = '标准模型',
    CUSTOMIZE = '项目自定义模型'
}
// 物模型事件类型枚举
export enum thingEventType {
    INFO_TYPE = '普通',
    ALERT_TYPE = '报警',
    ERROR_TYPE = '异常'
}
// 物模型行为类型枚举
export enum thingActionType {
    ASYNC = '同步',
    SYNC = '异步'
    // SCHEDULE = ''
}

// 属性类型
export enum AttributeType {
    SYSTEM = '系统属性',
    MODEL = '父模型属性',
    CHILD_MODEL = '私有属性'
}
// 产品类型
export enum ProductType {
    DIRECT = '直连设备',
    GATEWAY = '网关设备',
    CLOUD_GATEWAY = '云网关设备'
}
// 产品状态
export enum ProductState {
    ENABLED = '启用',
    DISABLED = '停用'
}
// 注册模式
export enum ConnectMode {
    ACTIVE = '主动连接',
    PASSIVE = '被动连接'
}
// 认证方式
export enum AuthType {
    Secret = '密钥',
    Cert = '证书'
}
// 连接方式
export enum ConnectMethod {
    Wired = '有线',
    Wireless = '无线',
    SerialPort = '串口'
}
// 设备状态
export enum DeviceStatus {
    OFFLINE = '离线',
    ONLINE = '在线',
    UNREGISTER = '未注册',
    NULL = '无'
}
// (任务)触发方式
export enum TriggerType {
    API = 'API触发',
    TIMER = '定时触发',
    EVENT = '下位机触发'
}
// 设备任务状态
export enum DeviceJobState {
    RUNNING = '执行中',
    STOP = '停止'
}
// 任务执行情况
export enum JobState {
    SUCCESS = '成功',
    FAILED = '失败',
    TIMEOUT = '超时'
}
// 设备-日志-执行情况
export enum ExecState {
    // PENDING = '待执行',
    RUNNING = '执行中',
    SUCCESS = '执行成功',
    FAILED = '执行失败',
    TIMEOUT = '执行超时'
    // CANCELLED = '已取消'
}

// 条件类型
export enum ConditionType {
    BASIC_CONDITION = '基础条件',
    LENGTH_CONDITION = '长度条件',
    SCRIPT_CONDITION = '脚本条件',
    SPI_CONDITION = 'SPI条件',
    UNIQUE_CONDITION = '唯一约束条件'
}
// 规则验证结果
export enum ValidationResult {
    ERROR = '报错',
    WARN = '警告'
}

// 业务模型-事件-触发时机
export enum EventType {
    BEFORE_CREATE = '创建前',
    AFTER_CREATE = '创建后',
    BEFORE_UPDATE = '更新前',
    AFTER_UPDATE = '更新后',
    BEFORE_DELETE = '删除前',
    AFTER_DELETE = '删除后',
    BEFORE_UPLOAD = '上传前',
    AFTER_UPLOAD = '上传后',
    BEFORE_DOWNLOAD = '下载前',
    AFTER_DOWNLOAD = '下载后',
    BEFORE_IMPORT = '导入前',
    AFTER_IMPORT = '导入后',
    BEFORE_EXPORT = '导出前',
    AFTER_EXPORT = '导出后'
}

// 业务模型-事件-执行类型
export enum ActionsExecutionType {
    SYNC = '同步执行',
    ASYNC = '异步执行'
    // SCHEDULE = '调度执行'
}

// 业务模型-事件-执行方式
export enum EventAction {
    UPDATE_OBJECT = '更新对象',
    SPI = '调用接口Spi',
    SCRIPT = '脚本Script',
    INTEGRATION = '集成Integration'
    // SEND_EMAIL = "发送邮件",
}
// 属性值类型
export enum AttrValueType {
    STRING = '字符串',
    NUMBER = '数字',
    BOOLEAN = '布尔',
    DATE = '日期'
}
// CRC类型
export enum CrcType {
    crc8 = 'CRC8',
    crc16 = 'CRC16',
    crc32 = 'CRC32'
}
// hash类型
export enum HashType {
    md5 = 'MD5哈希校验',
    sha256 = 'SHA256哈希校验'
}
// 校验类型
export enum CheckType {
    parity = '奇偶校验',
    sum = '和校验',
    crc = 'CRC（循环冗余校验）',
    hash = '哈希校验'
}
// 数据类型
export enum DataType {
    byte = '字节型',
    short = '有符号短整型',
    boolean = '布尔型',
    check = '校验位',
    int = '有符号整型',
    long = '有符号长整型',
    ushort = '无符号短整型',
    uint = '无符号整型',
    ulong = '无符号长整型',
    string = '字符串型',
    float = '浮点数型',
    bitmap = 'bit位型',
    datetime = '时间型',
    serialNumber = '序列号'
}
export enum ParseMethod {
    byteOrder = '字节序',
    needCalculate = '是否需要计算',
    decodeExpression = '解码表达式',
    encodeExpression = '编码表达式',
    decodeResultDataType = '解码结果数据类型',
    encodeResultDataType = '编码结果数据类型',
    decodeAccuracy = '解码结果精度',
    attributeStringEncode = '编码类型' // 给字符串用
}
export enum AttributeStringEncode {
    text = '文本',
    hex = '16进制',
    base64 = 'base64',
    bcd = 'bcd码'
}
// 属性性质
export enum AttributeCategory {
    CONST = '常量',
    VAR = '变量'
}
// 传递来源
export enum TransSource {
    OUT_PARAM = '外部传参',
    MODEL = '模型绑定',
    DEFAULT = '不传参'
}
// （消息）集成范围
export enum IntegrationScope {
    ALL = '全部产品',
    SPECIFIED = '指定产品'
}
// 集成方式
export enum IntegrationMethod {
    MQ = 'MQ'
}
// spi类型
export enum SpiType {
    DEFAULT_VALUE = '设置默认值',
    ENUM_ITEM = '枚举选项',
    EVENT_ACTION = '事件动作',
    OBJECT_RULE = '对象规则'
}
// 脚本类型
export enum ScriptType {
    scriptCondition = '规则执行脚本',
    scriptEvent = '事件执行脚本',
    modbusScript = 'modbus协议脚本',
    mqttScript = 'mqtt协议脚本',
    tcpScript = 'tcp协议脚本',
    tcpCommandScript = 'tcp协议命令级脚本'
}
